﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using PDFHelper.Helper;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace ITextSharpSample
{
    public abstract class NoticePdfBase : TextSharpHelper
    {
        protected virtual Font TextFont
        {
            get
            {
                return CreateDefaultFont(四号);
            }
        }

        protected virtual Font TextAndUnderLineFont
        {
            get
            {
                return CreateDefaultFont(四号, Font.NORMAL | Font.UNDERLINE);
            }
        }

        protected virtual Font ProjectFont
        {
            get
            {
                return CreateDefaultFont(三号, Font.NORMAL | Font.BOLD);
            }
        }

        protected virtual Font TitleFont
        {
            get
            {
                return CreateDefaultFont(四号, Font.NORMAL | Font.BOLD);
            }
        }
        protected virtual Font ProjectNameDetail
        {
            get
            {
                return CreateDefaultFont(小三号, Font.NORMAL | Font.BOLD);
            }
        }
        protected virtual Font ProjectNameFont
        {
            get
            {
                return CreateDefaultFont(小三号, Font.BOLD | Font.UNDERLINE);
            }
        }

        public NoticePdfBase(string fileName)
            : base(fileName)
        {
        }

        private Dictionary<string, object> _keyValues;

        public void Fill(Dictionary<string, object> dictionary)
        {
            _keyValues = dictionary;
            FillPdfFile(FillDocument);
        }

        void FillDocument(Document doc)
        {
            FillDocument(doc, _keyValues);
        }

        protected abstract void FillDocument(Document doc, Dictionary<string, object> dictionary);
        //{
        //    Paragraph ph = new Paragraph();
        //    ph.Alignment = PdfContentByte.ALIGN_CENTER;
        //    ph.SetLeading(2, 2);
        //    ph.Add(new Phrase("第一章　比选公告", ProjectFont));
        //    ph.Add(Environment.NewLine);
        //    ph.Add(Environment.NewLine);
        //    //ph.Add(Environment.NewLine);
        //    ph.Add(new Phrase("成都大宝油漆服务有限公司测试项目", ProjectNameFont));
        //    ph.Add(new Phrase("（项目名称）", ProjectNameDetail));
        //    //doc.Add(new Paragraph("第一章　比选公告", TitleFont));

        //    ph.Add(Environment.NewLine);
        //    //ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("招标代理机构比选公告（评分法）", ProjectNameDetail));
        //    ph.Add(Environment.NewLine);
        //    ph.Add(Environment.NewLine);
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Alignment = PdfContentByte.ALIGN_LEFT;
        //    ph.SetLeading(2, 2);
        //    ph.Add(new Phrase("1. 比选条件", TitleFont));
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　本比选项目为四川省行政区域内的国家投资工程建设项目，", TextFont));
        //    ph.Add(new Phrase("核准机关名称", TextAndUnderLineFont));
        //    ph.Add(new Phrase("（核准机关名称）核准（招标事项核准文号为", TextFont));
        //    ph.Add(new Phrase("招标事项核准文号", TextAndUnderLineFont));
        //    ph.Add(new Phrase("）的招标组织形式为委托招标，比选文件在", TextFont));
        //    ph.Add(new Phrase("投资主管部门名称", TextAndUnderLineFont));
        //    ph.Add(new Phrase("（投资主管部门名称）的备案号为", TextFont));
        //    ph.Add(new Phrase("备案号", TextAndUnderLineFont));
        //    ph.Add(new Phrase("。", TextFont));
        //    ph.Add(Environment.NewLine);
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Alignment = PdfContentByte.ALIGN_LEFT;
        //    ph.SetLeading(2, 2);
        //    ph.Add(new Phrase("2. 项目概况", TitleFont));
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　2.1 项目业主：", TextFont));
        //    ph.Add(new Phrase("项目业主", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　2.2 建设地点：", TextFont));
        //    ph.Add(new Phrase("建设地点", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　2.3 项目规模：", TextFont));
        //    ph.Add(new Phrase("项目规模", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　2.4 计划工期：", TextFont));
        //    ph.Add(new Phrase("2340", TextAndUnderLineFont));
        //    ph.Add(new Phrase("日历天；计划开工时间：", TextFont));
        //    ph.Add(new Phrase("2007", TextAndUnderLineFont));
        //    ph.Add(new Phrase("年", TextFont));
        //    ph.Add(new Phrase("10", TextAndUnderLineFont));
        //    ph.Add(new Phrase("月", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　2.5 项目总投资：", TextFont));
        //    ph.Add(new Phrase("1234", TextAndUnderLineFont));
        //    ph.Add(new Phrase("万元", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　2.6 项目资金来源：", TextFont));
        //    ph.Add(new Phrase("项目资金来源", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　2.7 代理招标估算金额：", TextFont));
        //    ph.Add(new Phrase("2000", TextAndUnderLineFont));
        //    ph.Add(new Phrase("万元", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    ph.Add(Environment.NewLine);
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Alignment = PdfContentByte.ALIGN_LEFT;
        //    ph.SetLeading(2, 2);
        //    ph.Add(new Phrase("3. 申请人资格要求", TitleFont));
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　3.1 资格等级：申请人的资格等级不低于", TextFont));
        //    ph.Add(new Phrase("资格等级", TextAndUnderLineFont));
        //    ph.Add(new Phrase("资格", TextFont));
        //    ph.Add(new Phrase("二", TextAndUnderLineFont));
        //    ph.Add(new Phrase("级。", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　3.2 申请人业绩要求：2008年来，申请人至少已完成", TextFont));
        //    ph.Add(new Phrase("2", TextAndUnderLineFont));
        //    ph.Add(new Phrase("个（0至3个）", TextFont));
        //    ph.Add(new Phrase("分类项目业绩", TextAndUnderLineFont));
        //    ph.Add(new Phrase("类分类项目业绩。", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　3.3 拟任项目负责人业绩要求：2008年来，拟任项目负责人至少已完成", TextFont));
        //    ph.Add(new Phrase("1", TextAndUnderLineFont));
        //    ph.Add(new Phrase("个（0至3个）类似项目个人业绩，每个项目的中标金额应不低于第2.7款“代理招标估算金额”的", TextFont));
        //    ph.Add(new Phrase("10", TextAndUnderLineFont));
        //    ph.Add(new Phrase("%（0至100）。", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　3.4 没有被限制申请的情形和不存在同时申请的情形。", TextFont));
        //    ph.Add(Environment.NewLine);
        //    ph.Add(new Phrase("　　3.5 本次比选不接受联合体申请。", TextFont));
        //    ph.Add(Environment.NewLine);
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Add(new Phrase("4. 比选文件的获取", TitleFont));
        //    ph.SetLeading(2, 2);
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　4.1 凡有意参加比选竞争并符合第3条“申请人资格要求”的招标代理机构（己在川报网免费注册），请自发出比选公告之日起至", TextFont));
        //    ph.Add(new Phrase("2010", TextAndUnderLineFont));
        //    ph.Add(new Phrase("年", TextFont));
        //    ph.Add(new Phrase("11", TextAndUnderLineFont));
        //    ph.Add(new Phrase("月", TextFont));
        //    ph.Add(new Phrase("11", TextAndUnderLineFont));
        //    ph.Add(new Phrase("日", TextFont));
        //    ph.Add(new Phrase("11", TextAndUnderLineFont));

        //    ph.Add(new Phrase("时", TextFont));
        //    ph.Add(new Phrase("11", TextAndUnderLineFont));
        //    ph.Add(new Phrase("分（申请截止时间。从发布比选公告之日起至申请截止之日止最短不少于5日；本比选文件规定的时间为北京时间），在川报网下载比选文件。", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　4.2 比选服务费", TextFont));
        //    ph.Add(new Phrase("200", TextAndUnderLineFont));
        //    ph.Add(new Phrase("元。", TextFont));
        //    ph.Add(Environment.NewLine);
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Add(new Phrase("5. 代理申请书的递交", TitleFont));
        //    ph.SetLeading(2, 2);
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　5.1 代理申请书递交的截止时间为申请截止时间。地点为", TextFont));
        //    ph.Add(new Phrase("地点为", TextAndUnderLineFont));
        //    ph.Add(new Phrase("。", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　5.2 代理申请书应由申请人本单位的人员亲自递交。", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　5.3 逾期送达的或者未送达指定地点的代理申请书，比选人不予受理。", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    ph.Add(Environment.NewLine);

        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Add(new Phrase("6. 评审和随机选择", TitleFont));
        //    ph.SetLeading(2, 2);
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　6.1 比选人于申请人递交代理申请书的当天，对收到的代理申请书按规定组建评审委员会按第三章“评审办法和标准”进行评审，经评审得分在", TextFont));
        //    ph.Add(new Phrase("80", TextAndUnderLineFont));
        //    ph.Add(new Phrase("分（60或70或80或90分四档）以上的申请人（3个以上），通过川报网从符合条件的申请人中随机选择1个申请人作为中选人。", TextFont));
        //    ph.Add(Environment.NewLine);
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    ph.Add(new Phrase("　　6.2 随机选择在申请人的代理申请书递交人员和有关监督部门现场监督下进行。", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    // ph.Add(new Phrase("", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    ph.Add(Environment.NewLine);
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Add(new Phrase("7. 发布公告的媒介", TitleFont));
        //    ph.SetLeading(2, 2);
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　本次比选公告在川报网（www.sczbbx.com）上发布。", TextFont));
        //    ph.Add(Environment.NewLine);
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    //ph.Add(new Phrase("", TitleAndUnderLineFont));
        //    //ph.Add(new Phrase("", TextFont));
        //    doc.Add(ph);

        //    ph = new Paragraph();
        //    ph.Add(new Phrase("8. 联系方式", TitleFont));
        //    ph.SetLeading(2, 2);
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　比选　人：", TextFont));
        //    ph.Add(new Phrase("比 选 人", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　地　　址：", TextFont));
        //    ph.Add(new Phrase("地    址", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　邮　　编：", TextFont));
        //    ph.Add(new Phrase("邮    编", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　联系　人：", TextFont));
        //    ph.Add(new Phrase("联 系 人", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　电　　话：", TextFont));
        //    ph.Add(new Phrase("电    话", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　移动电话：", TextFont));
        //    ph.Add(new Phrase("移动电话", TextAndUnderLineFont));
        //    ph.Add(new Phrase("（仅用于川报网与之联系，不公开）", TextFont));
        //    ph.Add(Environment.NewLine);

        //    ph.Add(new Phrase("　　传　　真：", TextFont));
        //    ph.Add(new Phrase("传    真", TextAndUnderLineFont));
        //    ph.Add(Environment.NewLine);


        //    ph.Add(new Phrase("　　　　　　　　　", TextFont));
        //    ph.Add(new Phrase("2010", TextAndUnderLineFont));
        //    ph.Add(new Phrase("年", TextFont));
        //    ph.Add(new Phrase("12", TextAndUnderLineFont));
        //    ph.Add(new Phrase("月", TextFont));
        //    ph.Add(new Phrase("12", TextAndUnderLineFont));
        //    ph.Add(new Phrase("日（上网时间）", TextFont));
        //    ph.Add(Environment.NewLine);


        //    doc.Add(ph);
        //}

        protected Paragraph CreateParagraph(int alignment)
        {
            return CreateParagraphAndDestination(alignment, null, null);
        }

        protected Paragraph CreateParagraph()
        {
            return CreateParagraphAndDestination(PdfContentByte.ALIGN_LEFT, null, null);
        }

        protected Paragraph CreateParagraphAndDestination(int alignment, string name, Font font)
        {
            PdfOutline outline;
            return CreateParagraphAndDestination(alignment, name, font, out outline);
        }

        protected Paragraph CreateParagraphAndDestination(string name, Font font, PdfOutline rootline)
        {
            PdfOutline outline;
            return CreateParagraphAndDestination(PdfContentByte.ALIGN_LEFT, name, font, rootline, out outline);
        }

        protected Paragraph CreateParagraphAndDestination(int alignment, string name, Font font, PdfOutline rootline)
        {
            PdfOutline outline;
            return CreateParagraphAndDestination(alignment, name, font, rootline, out outline);
        }

        protected Paragraph CreateParagraphAndDestination(string name, Font font, PdfOutline rootline, out PdfOutline outline)
        {
            return CreateParagraphAndDestination(PdfContentByte.ALIGN_LEFT, name, font, rootline, out outline);
        }
        protected Paragraph CreateParagraphAndDestination(int alignment, string name, Font font, PdfOutline rootline, out PdfOutline outline)
        {
            switch (alignment)
            {
                case PdfContentByte.ALIGN_LEFT:
                case PdfContentByte.ALIGN_CENTER:
                case PdfContentByte.ALIGN_RIGHT:
                    break;
                default:
                    alignment = PdfContentByte.ALIGN_LEFT;
                    break;
            }

            Paragraph ph = CreateElementAndDestination<Paragraph>(name, font, rootline, out outline);
            ph.Alignment = alignment;
            ph.SetLeading(2, 2);
            return ph;
        }

        protected Paragraph CreateParagraphAndDestination(int alignment, string name, Font font, out PdfOutline outline)
        {
            return CreateParagraphAndDestination(alignment, name, font, null, out outline);
        }

        protected Phrase CreatePhraseAndDestination(string name, Font font, PdfOutline rootline)
        {
            PdfOutline outline;
            return CreateElementAndDestination<Phrase>(name, font, rootline, out outline);
        }

        protected TElement CreateElementAndDestination<TElement>(string name, Font font, PdfOutline inline, out PdfOutline outline) where TElement : class, IElement, new()
        {
            Chunk chk = null;
            outline = null;
            if (!string.IsNullOrEmpty(name))
            {
                chk = new Chunk(name, font);
                outline = inline == null ? SetDestination(chk) : SetDestination(inline, chk);
            }

            if (typeof(TElement) == typeof(Paragraph))
            {

                Paragraph ph = chk == null ? new Paragraph() : new Paragraph(chk);
                return ph as TElement;
            }
            if (typeof(TElement) == typeof(Phrase))
            {
                return (chk == null ? new Phrase() : new Phrase(chk)) as TElement;
            }

            return null;
        }

        protected TElement CreateElementAndDestination<TElement>(string name, Font font, out PdfOutline outline) where TElement : class, IElement, new()
        {
            return CreateElementAndDestination<TElement>(name, font, null, out outline);
        }

        protected Paragraph CreateParagraphAndDestination(string name, Font font)
        {
            return CreateParagraphAndDestination(PdfContentByte.ALIGN_LEFT, name, font);
        }

        protected void AddNewLine(Paragraph ph, int count)
        {
            for (int i = 0; i < count; i++)
            {
                ph.Add(Environment.NewLine);
            }
        }

        protected void AddNewLine(Paragraph ph)
        {
            ph.Add(Environment.NewLine);
        }
    }

    public class PffNotice : NoticePdfBase
    {
        public PffNotice(string fileName)
            : base(fileName)
        {
        }

        protected override void FillDocument(Document doc, Dictionary<string, object> dictionary)
        {
            PdfOutline rootline;
            Paragraph ph = CreateParagraphAndDestination(PdfContentByte.ALIGN_CENTER, "第一章　比选公告", ProjectFont, out rootline);
            AddNewLine(ph, 2);

            ph.Add(new Phrase(dictionary["项目名称"].ToString(), ProjectNameFont));
            ph.Add(new Phrase("（项目名称）", ProjectNameDetail));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("招标代理机构比选公告（评分法）", ProjectNameDetail));
            AddNewLine(ph, 2);

            doc.Add(ph);

            ph = CreateParagraphAndDestination("1. 比选条件", TitleFont, rootline);
            doc.Add(ph);

            ph = CreateParagraph();
            ph.FirstLineIndent = TextFont.Size * 2;
            //ph.Add(new Phrase("1. 比选条件", TitleFont));
            AddNewLine(ph, 1);
            ph.Add(new Phrase("本比选项目为四川省行政区域内的国家投资工程建设项目，", TextFont));
            ph.Add(new Phrase(dictionary["核准机关名称"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("（核准机关名称）核准（招标事项核准文号为", TextFont));
            ph.Add(new Phrase(dictionary["招标事项核准文号"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("）的招标组织形式为委托招标，比选文件在", TextFont));
            ph.Add(new Phrase(dictionary["投资主管部门名称"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("（投资主管部门名称）的备案号为", TextFont));
            ph.Add(new Phrase(dictionary["备案号"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("。", TextFont));
            AddNewLine(ph, 1);
            doc.Add(ph);

            PdfOutline second;
            ph = CreateParagraphAndDestination("2. 项目概况", TitleFont, rootline, out second);

            //ph.Add(new Phrase("2. 项目概况", TitleFont));
            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraph();
            ph.IndentationLeft = TextFont.Size * 2;
            ph.Add(new Phrase("2.1 项目业主：", TextFont));
            ph.Add(new Phrase(dictionary["项目业主"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("2.2 建设地点：", TextFont));
            ph.Add(new Phrase(dictionary["建设地点"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("2.3 项目规模：", TextFont));
            ph.Add(new Phrase(dictionary["项目规模"].ToString(), TextAndUnderLineFont));
            ph.Add(Environment.NewLine);

            DateTime tmp = (DateTime)dictionary["开工时间"];
            ph.Add(new Phrase("2.4 计划工期：", TextFont));
            ph.Add(new Phrase(dictionary["计划工期"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("日历天；计划开工时间：", TextFont));
            ph.Add(new Phrase(tmp.Year.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("年", TextFont));
            ph.Add(new Phrase(tmp.Month.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("月", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("2.5 项目总投资：", TextFont));
            ph.Add(new Phrase(dictionary["项目总投资"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("万元", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("2.6 项目资金来源：", TextFont));
            ph.Add(new Phrase(dictionary["项目资金来源"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("2.7 代理招标估算金额：", TextFont));
            ph.Add(new Phrase(dictionary["代理招标估算金额"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("万元", TextFont));

            AddNewLine(ph, 1);

            doc.Add(ph);

            ph = CreateParagraphAndDestination("3. 申请人资格要求", TitleFont, rootline);

            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraph();
            ph.IndentationLeft = TextFont.Size * 2;
            ph.Add(new Phrase("3.1 资格等级：申请人的资格等级不低于", TextFont));
            ph.Add(new Phrase(dictionary["资格等级"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("资格", TextFont));
            ph.Add(new Phrase(dictionary["资格"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("级。", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("3.2 申请人业绩要求：2008年来，申请人至少已完成", TextFont));
            ph.Add(new Phrase(dictionary["业绩要求"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("个（0至3个）", TextFont));
            ph.Add(new Phrase(dictionary["分类项目业绩"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("类分类项目业绩。", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("3.3 拟任项目负责人业绩要求：2008年来，拟任项目负责人至少已完成", TextFont));
            ph.Add(new Phrase(dictionary["项目负责人业绩要求"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("个（0至3个）类似项目个人业绩，每个项目的中标金额应不低于第2.7款“代理招标估算金额”的", TextFont));
            ph.Add(new Phrase("10", TextAndUnderLineFont));
            ph.Add(new Phrase("%（0至100）。", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("3.4 没有被限制申请的情形和不存在同时申请的情形。", TextFont));
            ph.Add(Environment.NewLine);
            ph.Add(new Phrase("3.5 本次比选不接受联合体申请。", TextFont));
            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraphAndDestination("4. 比选文件的获取", TitleFont, rootline);

            AddNewLine(ph, 1);

            doc.Add(ph);

            tmp = (DateTime)dictionary["截止时间"];
            ph = CreateParagraph();
            ph.IndentationLeft = TextFont.Size * 2;
            ph.Add(new Phrase("4.1 凡有意参加比选竞争并符合第3条“申请人资格要求”的招标代理机构（己在川报网免费注册），请自发出比选公告之日起至", TextFont));
            ph.Add(new Phrase(tmp.Year.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("年", TextFont));
            ph.Add(new Phrase(tmp.Month.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("月", TextFont));
            ph.Add(new Phrase(tmp.Day.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("日", TextFont));
            ph.Add(new Phrase(tmp.Hour.ToString(), TextAndUnderLineFont));

            ph.Add(new Phrase("时", TextFont));
            ph.Add(new Phrase(tmp.Minute.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("分（申请截止时间。从发布比选公告之日起至申请截止之日止最短不少于5日；本比选文件规定的时间为北京时间），在川报网下载比选文件。", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("4.2 比选服务费", TextFont));
            ph.Add(new Phrase("200", TextAndUnderLineFont));
            ph.Add(new Phrase("元。", TextFont));
            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraphAndDestination("5. 代理申请书的递交", TitleFont, rootline);

            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraph();
            ph.IndentationLeft = TextFont.Size * 2;

            ph.Add(new Phrase("5.1 代理申请书递交的截止时间为申请截止时间。地点为", TextFont));
            ph.Add(new Phrase(dictionary["地点为"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("。", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("5.2 代理申请书应由申请人本单位的人员亲自递交。", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("5.3 逾期送达的或者未送达指定地点的代理申请书，比选人不予受理。", TextFont));

            AddNewLine(ph, 1);

            doc.Add(ph);

            ph = CreateParagraphAndDestination("6. 评审和随机选择", TitleFont, rootline);
            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraph();
            ph.IndentationLeft = TextFont.Size * 2;

            ph.Add(new Phrase("6.1 比选人于申请人递交代理申请书的当天，对收到的代理申请书按规定组建评审委员会按第三章“评审办法和标准”进行评审，经评审得分在", TextFont));
            ph.Add(new Phrase(dictionary["评审得分"].ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("分（60或70或80或90分四档）以上的申请人（3个以上），通过川报网从符合条件的申请人中随机选择1个申请人作为中选人。", TextFont));
            AddNewLine(ph, 1);
            //ph.Add(new Phrase("", TitleAndUnderLineFont));
            ph.Add(new Phrase("6.2 随机选择在申请人的代理申请书递交人员和有关监督部门现场监督下进行。", TextFont));

            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraphAndDestination("7. 发布公告的媒介", TitleFont, rootline);

            //ph.Add(new Phrase("7. 发布公告的媒介", TitleFont));
            ph.Add(Environment.NewLine);

            doc.Add(ph);

            ph = CreateParagraph();
            ph.IndentationLeft = TextFont.Size * 2;
            ph.Add(new Phrase("本次比选公告在川报网（www.sczbbx.com）上发布。", TextFont));

            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraphAndDestination("8. 联系方式", TitleFont, rootline);

            AddNewLine(ph, 1);
            doc.Add(ph);

            ph = CreateParagraph();
            ph.Add(new Phrase("　　比选　人：", TextFont));
            ph.Add(new Phrase(dictionary["比 选 人"].ToString(), TextAndUnderLineFont));

            AddNewLine(ph, 1);

            ph.Add(new Phrase("　　地　　址：", TextFont));
            ph.Add(new Phrase(dictionary["地    址"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);


            ph.Add(new Phrase("　　邮　　编：", TextFont));
            ph.Add(new Phrase(dictionary["邮    编"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("　　联系　人：", TextFont));
            ph.Add(new Phrase("联 系 人", TextAndUnderLineFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("　　电　　话：", TextFont));
            ph.Add(new Phrase(dictionary["电    话"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("　　移动电话：", TextFont));
            ph.Add(new Phrase("移动电话", TextAndUnderLineFont));
            ph.Add(new Phrase("（仅用于川报网与之联系，不公开）", TextFont));
            AddNewLine(ph, 1);

            ph.Add(new Phrase("　　传　　真：", TextFont));
            ph.Add(new Phrase(dictionary["传    真"].ToString(), TextAndUnderLineFont));
            AddNewLine(ph, 1);

            tmp = (DateTime)dictionary["上网时间"];

            ph.Add(new Phrase("　　　　　　　　　", TextFont));
            ph.Add(new Phrase(tmp.Year.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("年", TextFont));
            ph.Add(new Phrase(tmp.Month.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("月", TextFont));
            ph.Add(new Phrase(tmp.Day.ToString(), TextAndUnderLineFont));
            ph.Add(new Phrase("日（上网时间）", TextFont));
            AddNewLine(ph, 1);
            doc.Add(ph);
        }
    }
}